package com.cysoft.third.echarts.component.graphic;

/**
 * @author 玖零
 * @version v0.0.1
 * @project cysoft-third-echarts
 * @package com.cysoft.third.echarts.component.graphic
 * @date 2025/3/13 23:16
 * @desc 图形元素的基础类
 */
public class GraphicElement {

    /**
     * 图形元素的 ID
     */
    private String id;
    /**
     * 图形元素的类型
     */
    private String type;
    /**
     * 指定本次 setOption 对此图形元素进行的操作。默认是 'merge'，还可以 'replace' 或 'remove'。
     */
    private String $action = "merge";
    /**
     * 相对于父元素的左定位
     */
    private Object left;
    /**
     * 相对于父元素的右定位
     */
    private Object right;
    /**
     * 相对于父元素的上定位
     */
    private Object top;
    /**
     * 相对于父元素的下定位
     */
    private Object bottom;
    /**
     * 定位、形状相关的设置
     */
    private Shape shape;
    /**
     * 样式相关的设置
     */
    private Style style;
    /**
     * 表示 z 高度，从而指定了图形元素的覆盖关系
     */
    private Integer z;
    /**
     * 表示不响应事件
     */
    private Boolean silent;
    /**
     * 表示节点不显示
     */
    private Boolean invisible;
    /**
     * 设置是否整体限制在父节点范围内。可选值：'raw', 'all'
     */
    private String bounding;
    /**
     * 是否可以被拖拽
     */
    private Boolean draggable;
    /**
     * 点击事件监听器
     */
    private Object onclick;
    /**
     * 鼠标悬停事件监听器
     */
    private Object onmouseover;
    /**
     * 鼠标移出事件监听器
     */
    private Object onmouseout;
    /**
     * 鼠标移动事件监听器
     */
    private Object onmousemove;
    /**
     * 鼠标滚轮事件监听器
     */
    private Object onmousewheel;
    /**
     * 鼠标按下事件监听器
     */
    private Object onmousedown;
    /**
     * 鼠标抬起事件监听器
     */
    private Object onmouseup;
    /**
     * 拖拽事件监听器
     */
    private Object ondrag;
    /**
     * 拖拽开始事件监听器
     */
    private Object ondragstart;
    /**
     * 拖拽结束事件监听器
     */
    private Object ondragend;
    /**
     * 拖拽进入事件监听器
     */
    private Object ondragenter;
    /**
     * 拖拽离开事件监听器
     */
    private Object ondragleave;
    /**
     * 拖拽经过事件监听器
     */
    private Object ondragover;
    /**
     * 拖拽放下事件监听器
     */
    private Object ondrop;
    /**
     * x 坐标
     */
    private Integer x;
    /**
     * y 坐标
     */
    private Integer y;
    /**
     * 旋转角度
     */
    private Double rotation;
    /**
     * x 方向缩放比例
     */
    private Double scaleX;
    /**
     * y 方向缩放比例
     */
    private Double scaleY;
    /**
     * 旋转和缩放的 x 轴中心点
     */
    private Integer originX;
    /**
     * 旋转和缩放的 y 轴中心点
     */
    private Integer originY;
    /**
     * 过渡效果
     */
    private Object transition;
    /**
     * 进入动画起始状态
     */
    private Object enterFrom;
    /**
     * 离开动画结束状态
     */
    private Object leaveTo;
    /**
     * 进入动画
     */
    private Object enterAnimation;
    /**
     * 更新动画
     */
    private Object updateAnimation;
    /**
     * 离开动画
     */
    private Object leaveAnimation;
    /**
     * 关键帧动画
     */
    private Object keyframeAnimation;
    /**
     * z 层级
     */
    private Integer zlevel;
    /**
     * 自定义信息
     */
    private Object info;
    /**
     * 是否忽略
     */
    private Boolean ignore;
    /**
     * 文本内容
     */
    private Object textContent;
    /**
     * 文本配置
     */
    private Object textConfig;
    /**
     * 持续时间
     */
    private Integer during;
    /**
     * 鼠标指针样式
     */
    private String cursor;
    /**
     * 是否渐进式渲染
     */
    private Boolean progressive;
    /**
     * 聚焦状态
     */
    private Object focus;
    /**
     * 模糊范围
     */
    private Object blurScope;


}
